package com.glsc.ngateway.common.api.oaflow.dto;

import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 提供oa流程意见列表展示
 *
 * @author xuchang
 */
@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
public class OaRequestLogResp {

    Boolean isEnd;
    List<OaRequestLog> loglist;
    String maxrequestlogid;
    Integer totalCount;

    @AllArgsConstructor
    @NoArgsConstructor
    @Data
    @Builder
    public static class OaRequestLog {
        /**
         * [{docImagefilename: "国联技术服务平台-系统名称申请流程审批.docx", fileExtendName: "docx",…},…]
         */
        @ApiModelProperty(value = "附件")
        private List<Doc> annexdocs;

        /**
         * "-1"
         */
        @ApiModelProperty(value = "")
        private String checkSuccess;

        @ApiModelProperty(value = "")
        private String displaybyagentname;

        @ApiModelProperty(value = "部门id")
        private String displaydepid;

        @ApiModelProperty(value = "部门名称")
        private String displaydepname;

        @ApiModelProperty(value = "人员id")
        private String displayid;

        @ApiModelProperty(value = "人员账号")
        private String displayaccount;

        @ApiModelProperty(value = "人员名称")
        private String displayname;

        @ApiModelProperty(value = "人员类别")
        private String displaytype;

        /**
         * 0
         */
        @ApiModelProperty(value = "")
        private Integer forward;

        /**
         * 转发
         */
        @ApiModelProperty(value = "")
        private String forwardMenuName;

        /**
         * 
         */
        @ApiModelProperty(value = "手签图片")
        private String handWrittenSign;

        /**
         * {
         * "aesCode": "",
         * "docImageFileId": 0,
         * "docid": 0,
         * "filename": "bd8b2376-c909-49e9-9390-7bba9c487131",
         * "filerealpath": "/finmall/share/oa/oafiles/202306/I/bd8b2376-c909-49e9-9390-7bba9c487131.zip",
         * "filetype": "image/png",
         * "fileused": 1,
         * "imagefileheight": 0,
         * "imagefileid": 1435195,
         * "imagefilesize": 7606,
         * "imagefilewidth": 0,
         * "isAesEncrype": 0,
         * "isencrype": 0,
         * "iszip": 1,
         * "versionId": 0
         * }
         */
        @ApiModelProperty(value = "手签图片")
        private List<?> handWrittenSignDoc;

        @ApiModelProperty(value = "照片路径")
        private String img_path;
        /**
         * "0"
         */
        @ApiModelProperty(value = "")
        private String isProtected;

        @ApiModelProperty(value = "")
        private Boolean isReference;

        @ApiModelProperty(value = "")
        private Boolean isexsAgent;

        @ApiModelProperty(value = "")
        private Boolean isinneruser;
        /**
         * "-1"
         */
        @ApiModelProperty(value = "")
        private String log_agentorbyagentid;

        /**
         * "2.审批人"
         */
        @ApiModelProperty(value = "节点名称")
        private String log_nodename;

        @ApiModelProperty(value = "审批日期")
        private String log_operatedate;

        @ApiModelProperty(value = "审批时间")
        private String log_operatetime;

        @ApiModelProperty(value = "审批意见")
        private String log_remarkHtml;

        @ApiModelProperty(value = "log id")
        private String logid;

        @ApiModelProperty(value = "log type")
        private String logtype;

        @ApiModelProperty(value = "操作名称")
        private String operationname;

        @ApiModelProperty(value = "")
        private String pgflag;

        @ApiModelProperty(value = "接收人")
        private String receiveUser;

        @ApiModelProperty(value = "接收人数量")
        private Integer receiveUserCount;

        @ApiModelProperty(value = "位置")
        private String remarkLocation;

        /**
         * {
         * "showid": "1216742",
         * "authSignatureStr": "68ee4e0d56e66856986de01b25df5eb1",
         * "tempshowname": "单一集合终止流程-流程修改记录V2.5",
         * "filelink": "/spa/document/index.jsp?f_weaver_belongto_userid=1494&f_weaver_belongto_usertype=0&id=1216742&isrequest=1&requestid=887376&authStr=dmlld0NoYWluPTg4NzM3NnxtYWluaWQ9ODg3Mzc2fA==&authSignatureStr=68ee4e0d56e66856986de01b25df5eb1",
         * "authStr": "dmlld0NoYWluPTg4NzM3NnxtYWluaWQ9ODg3Mzc2fA=="
         * }
         */
        @ApiModelProperty(value = "相关文档")
        private List<Doc> signdocs;

        @ApiModelProperty(value = "")
        private Integer signnaturImgHeight;

        /**
         * {
         * "desrequestid": 887376,
         * "isrequest": "1",
         * "f_weaver_belongto_userid": "1494",
         * "authSignatureStr": "68ee4e0d56e66856986de01b25df5eb1",
         * "f_weaver_belongto_usertype": "0",
         * "requestid": "887725",
         * "authSignatureInfo": "&authStr=dmlld0NoYWluPTg4NzM3NnxtYWluaWQ9ODg3Mzc2fA==&authSignatureStr=68ee4e0d56e66856986de01b25df5eb1",
         * "title": "0526变更3333-系统名称变更流程-周志鹏-20230602",
         * "authStr": "dmlld0NoYWluPTg4NzM3NnxtYWluaWQ9ODg3Mzc2fA=="
         * }
         */
        @ApiModelProperty(value = "相关流程")
        private List<SignWorkflow> signwfs;

        @ApiModelProperty(value = "")
        private String[] speechAttachmetnDatas;

        @ApiModelProperty(value = "")
        private String tempremark;

        @ApiModelProperty(value = "")
        private String userimg;

        @AllArgsConstructor
        @NoArgsConstructor
        @Data
        @Builder
        public static class SignWorkflow {
            private String authSignatureInfo;
            private String authSignatureStr;
            private String authStr;
            private String desrequestid;
            private String f_weaver_belongto_userid;
            private String f_weaver_belongto_usertype;
            private String isrequest;
            private String requestid;
            private String title;
        }

        @AllArgsConstructor
        @NoArgsConstructor
        @Data
        @Builder
        public static class Doc {
            private String authSignatureStr;
            private String authStr;
            private Long docImagefileSize;
            private String docImagefileid;
            private String docImagefilename;
            private String downloadlink;
            private String fileExtendName;
            private String filelink;
            private Boolean nodownload;
            private Boolean showdownload;
            private String showid;
            private String tempshowname;
            private Long versionId;
        }
    }
}